package com.lin.missyou.model;

import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.Where;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import java.util.Objects;

/**
 * 活动
 *
 * 活动与优惠卷关系？
 * 尽量使用一对多关系，减少使用多对多关系
 * 问题本质：
 *      业务来设计数据库
 * 一个多对多的关系是可以拆分成两个一对多的关系
 * 思考是否能将一对多转换成多对多
 *  activity 活动
 *  coupon 优惠卷
 *  多对多关系，引入 coupon-template 拆分成两个一对多
 * @author gcq
 * @Create 2021-11-02
 */
@Entity
@Getter
@Setter
@Where(clause = "delete_time is null and online = 1")
public class Activity extends BaseEntity {

    @Id
    private Long id;
    /**
     * 活动标题
     */
    private String title;
    /**
     * 活动描述
     */
    private String description;
    /**
     * 领取优惠卷事件
     */
    private Date startTime;
    /**
     * 使用优惠事件
     */
    private Date endTime;
    /**
     * 备注
     */
    private String remark;
    /**
     * 是否上线
     */
    private Boolean online;
    /**
     * 封面
     */
    private String entranceImg;
    /**
     *
     */
    private String internalTopImg;
    /**
     * 活动名称
     */
    private String name;

    /**
     * 和优惠卷一对多关系
     */
    @OneToMany(fetch = FetchType.LAZY)
    @JoinColumn(name = "activityId")
    private List<Coupon> couponList;

}